With the widespread use of graphical interfaces in computer based applications, more flexibility is available in determining how information is entered by a user and displayed. "Computer forms" are the typical user interface that is used for entering and displaying information. Similar to paper forms, computer forms provide a two dimensional view of information Computer forms, however, also provide the capability for three dimensional viewing of information. Computer forms may consist of several text, graphics, control items, and other objects which simplify and organize the display of information and facilitate data entry. Examples of computer forms include e-mail messages, purchase orders, invoices, database entry forms, and financial tracking forms.
Designers of user interfaces are challenged by the requirement of creating generic, easily understandable, user interfaces that appeal to potential users. The success of a product in the market may relate to the "friendliness" of the user interface. Therefore, user interface designers try to meet the use requirements of the widest range of potential users. In an attempt to appeal to the widest range of potential users, some designers have integrated "user customizable" computer forms into their products. With this capability, users can tailor the appearance of a computer form to meet their individual requirements.
With a promising array of potential uses, user customizable forms are a valuable asset to a product The process of creating a form, however, can be difficult. Users must carefully align objects inserted onto the computer form, insert and align meaningful labels near the objects to indicate their purpose, and insure that the objects are large enough to display the required information. The construction of a typical computer form can consume a significant amount of the user's time. Therefore, it is desirable to provide a system that reduces the complexity and expedites the process of creating computer forms.
Many of the operations involved in creating computer forms are predictable. One such predictable operation is identifying the location to place an object on the computer form. Computer forms are generally created in a top down approach which means that objects appearing at the top of the form are entered first. In many applications, when an object is entered onto a form or into a window, the object is either placed at a generic location (such as the center of the form) or at a location selected by a pointing device such as a mouse pointer. Using this approach, an object must be inserted onto a form, moved to a desired location and then aligned with other objects. By automatically performing these operations, the process of creating a computer form can be simplified. Therefore, there is a need to provide a system that automates the process of identifying a location to place an object on a computer form.
Another predictable operation is determining the size of an object that has been placed on a computer form. Generally, the size of an object within a computer form may depend on the type or use of the object. For instance, a mail message computer form may contain one object which holds the name of the recipient, another for the subject of the mail message, and yet another for the text of the mail message. The name of the recipient and the subject of the message could conform to one object type while the text may conform to another object type. In previous solutions, the designer of the computer form would be required to place each of these objects and then adjust their size accordingly. This process again adds time and complexity to creating a computer form. Therefore, there also is a need to provide a system that automates the process of determining and adjusting the size of an object placed onto a computer form.
Another predictable operation is aligning objects that are placed onto a computer form. For aesthetic appearances, it is desirable for an array, consisting of a column or row of objects, to have their borders aligned with each other and to be uniformly spaced apart. As the number of objects in a computer form increases, this task can become tedious and time consuming. Because a typical user may desire to arrange objects in an aesthetically pleasing manner, the task of aligning and spacing the objects should be automated. Therefore, there also is a need to provide a system that automates the process of aligning and spacing objects that are placed onto a computer form.
Another predictable operation is attaching labels to objects that have been placed onto a computer form. Typically, a user is required to insert an object onto a computer form, insert a label to identify the object, align the object and the label, and then link the object and the label together. For complex computer forms, these operations can require a significant amount of time. Therefore, there is also a need to provide a system which automatically inserts, aligns, and links a label with an object when an object is inserted onto a computer form.
In some circumstances, a common computer form may be used by many different users. Depending on the specific uses, some users may want to modify certain aspects of the common computer form. Rather than having to create a new form, it is desirable to be able to modify a pre-existing form. For instance, a common e-mail computer form may include objects such as the recipients name, the senders name, the date the e-mail is sent, and a message box. If particular users desire to add a priority indicator at the top of the e-mail computer form, they must move each of the objects in order to create space for this additional object. The users then must insure that the moved objects and any labels associated with them are aligned and uniformly spaced. Similar operations must be performed if a user desires to rearrange the order of the objects on a computer form. Therefore, there is also a need to provide a system which automatically moves, aligns, and spaces previously-placed objects in a computer form when a new object inserted. Likewise, there is also a need for a system which automatically adjusts previously-placed objects on a computer form when one of the objects are moved.
Although uncommon, a user may desire to place objects on a computer form without having them aligned. Furthermore, a user may desire to create a computer form in a manner other than a top down approach. If the system for creating the forms automatically places and aligns the objects as they are entered onto the form or moved, this may frustrate the designer. Therefore, there is a desire to provide a system which automates the process of creating computer forms, yet allows a user to override the automatic alignment and positioning features of the system.
In view of the foregoing, there is a need for a system to provide automatic capabilities in creating user customizable computer forms. There is also a need to automate predictable operations involved in creating a custom computer form in order to reduce the time required and complexity involved in creating custom computer forms.